﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLNHASACH.DTO;
using QLNHASACH.BussinessLayer;

namespace QLNHASACH.Controls
{
    public partial class KhachHangCtrl : UserControl
    {
        public KhachHangCtrl()
        {
            InitializeComponent();
        }
        KhachHangDTO khach=new KhachHangDTO();
        bool themSua;//Neu them =1 Sua =0
        #region Các hàm chức năng
        //Bật tắt các control
        public void EnableEditing(bool editting)
        {
            //button
            btSua.Enabled = !editting;
            btXoa.Enabled = !editting;
            btLuu.Enabled = editting;
            btKhongLuu.Enabled = editting;
            //textbox, cb
            txbHoTen.Enabled = editting;
            txbDiaChi.Enabled = editting;
            txbEmail.Enabled = editting;
            txbSDT.Enabled = editting;
        }
        //Reset giá trị của các txb
        public void ResetValue()
        {
            txbHoTen.Text = "";
            txbDiaChi.Text = "";
            txbEmail.Text = "";
            txbSDT.Text = "";
        }
        //Hàm kiểm tra tính đúng đắn của các giá trị
        public bool KTTruocKhiLuu()
        {
            if (txbHoTen.Text == "")
            {
                MessageBox.Show("Họ tên không hợp lệ", "Nhắc nhở", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (txbSDT.Text == "")
            {
                MessageBox.Show("Số điện thoại không hợp lệ", "Nhắc nhở", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (txbEmail.Text == "")
            {
                MessageBox.Show("Email không hợp lệ", "Nhắc nhở", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (txbDiaChi.Text == "")
            {
                MessageBox.Show("Địa chỉ không hợp lệ", "Nhắc nhở", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            return true;
        }
        //hàm lấy thông tin khách hàng
        public void LayThongTin()
        {
            khach.TenKhachHang = txbHoTen.Text;
            khach.DiaChi = txbDiaChi.Text;
            khach.Email = txbEmail.Text;
            khach.SDT = txbSDT.Text;
            khach.MaKhachHang = int.Parse(gridEXKhachHang.CurrentRow.Cells[0].Value.ToString());
        }
        #endregion
        #region Các hàm sự kiện
        private void KhachHangCtrl_Load(object sender, EventArgs e)
        {
            gridEXKhachHang.DataSource = KhachHangBUS.LayDSKhachHang();
            EnableEditing(false);
            rbTenKH.Checked = true;
        }
        private void gridEXKhachHang_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                //Lấy thông tin khách hàng đang chọn
                txbHoTen.Text = gridEXKhachHang.CurrentRow.Cells[1].Value.ToString();
                txbDiaChi.Text = gridEXKhachHang.CurrentRow.Cells[2].Value.ToString();
                txbEmail.Text = gridEXKhachHang.CurrentRow.Cells[3].Value.ToString();
                txbSDT.Text = gridEXKhachHang.CurrentRow.Cells[4].Value.ToString();
            }
            catch (Exception)
            {
            }
        }
        private void btThem_Click(object sender, EventArgs e)
        {
            themSua = true;
            EnableEditing(true);
            ResetValue();
        }
        private void btKhongLuu_Click(object sender, EventArgs e)
        {
            EnableEditing(false);
        }
        private void btLuu_Click(object sender, EventArgs e)
        {
            if (KTTruocKhiLuu() == true)
            {
                LayThongTin();
                //Lưu khi thêm khách hàng
                if (themSua == true && KhachHangBUS.ThemKhachHang(khach) == true)
                {
                    MessageBox.Show("Đã thêm khách hàng " + khach.TenKhachHang + " thành công!", "Thông báo",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    KhachHangCtrl_Load(sender, e);

                }
                //Lưu khi cập nhật khách hàng
                if (themSua == false && KhachHangBUS.CapNhatKhachHang(khach) == true)
                {
                    MessageBox.Show("Đã cập nhật thông tin khách hàng " + khach.TenKhachHang + " thành công!", "Thông báo",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    KhachHangCtrl_Load(sender, e);
                }
            }
        }
        private void btXoa_Click(object sender, EventArgs e)
        {
            LayThongTin();
            if (KhachHangBUS.XoaMotKhachHang(khach))
                MessageBox.Show("Đã xóa thành công" + khach.TenKhachHang + " thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            KhachHangCtrl_Load(sender, e);
        }

        private void btSua_Click(object sender, EventArgs e)
        {
            themSua = false;
            EnableEditing(true);
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (txbTimKiem.Text != "")
            {
                if (rbTenKH.Checked)
                {
                    gridEXKhachHang.DataSource = KhachHangBUS.TimTheoTen(txbTimKiem.Text);
                }
                else
                {
                    if (rbSDT.Checked)
                        gridEXKhachHang.DataSource = KhachHangBUS.TimTheoSDT(txbTimKiem.Text);
                    else
                        gridEXKhachHang.DataSource = KhachHangBUS.TimTheoEmail(txbTimKiem.Text);
                }
            }
            else
                gridEXKhachHang.DataSource = KhachHangBUS.LayDSKhachHang();
        }
        #endregion
      
    }
}
